home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Original Code / Tree View and List View / DirectoriesAndFiles / DirectoriesAndFiles.cs < prev    next >
Encoding:
Text File  |  2001-01-15  |  2.5 KB  |  87 lines

  1. //--------------------------------------------------
  2. // DirectoriesAndFiles.cs ⌐ 2001 by Charles Petzold
  3. //--------------------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.IO;
  7. using System.Windows.Forms;
  8.  
  9. class DirectoriesAndFiles: Form
  10. {
  11.      DirectoryTreeView dirtree;
  12.      Panel             panel;
  13.      TreeNode          tnSelect;
  14.  
  15.      public static void Main()
  16.      {
  17.           Application.Run(new DirectoriesAndFiles());
  18.      }
  19.      public DirectoriesAndFiles()
  20.      {
  21.           Text = "Directories and Files";
  22.           BackColor = SystemColors.Window;
  23.           ForeColor = SystemColors.WindowText;
  24.  
  25.           panel = new Panel();
  26.           panel.Parent = this;
  27.           panel.Dock = DockStyle.Fill;
  28.           panel.Paint += new PaintEventHandler(PanelOnPaint);
  29.  
  30.           Splitter split = new Splitter();
  31.           split.Parent = this;
  32.           split.Dock = DockStyle.Left;
  33.           split.BackColor = SystemColors.Control;
  34.  
  35.           dirtree = new DirectoryTreeView();
  36.           dirtree.Parent = this;
  37.           dirtree.Dock = DockStyle.Left;
  38.           dirtree.AfterSelect += 
  39.                     new TreeViewEventHandler(DirectoryTreeViewOnAfterSelect);
  40.  
  41.                // Create menu with one item.
  42.  
  43.           Menu = new MainMenu();
  44.           Menu.MenuItems.Add("View");
  45.  
  46.           MenuItem mi = new MenuItem("Refresh", 
  47.                               new EventHandler(MenuOnRefresh), Shortcut.F5);
  48.           Menu.MenuItems[0].MenuItems.Add(mi);
  49.      }
  50.      void DirectoryTreeViewOnAfterSelect(object obj, TreeViewEventArgs tvea)
  51.      {
  52.           tnSelect = tvea.Node;
  53.           panel.Invalidate();
  54.      }
  55.      void PanelOnPaint(object obj, PaintEventArgs pea)
  56.      {
  57.           if (tnSelect == null)
  58.                return;
  59.  
  60.           Panel         panel     = (Panel) obj;
  61.           Graphics      grfx      = pea.Graphics;
  62.           DirectoryInfo dirinfo   = new DirectoryInfo(tnSelect.FullPath);
  63.           FileInfo[]    afileinfo;
  64.           Brush         brush     = new SolidBrush(panel.ForeColor);
  65.           int           y         = 0;
  66.  
  67.           try
  68.           {
  69.                afileinfo = dirinfo.GetFiles();
  70.           }
  71.           catch
  72.           {
  73.                return;
  74.           }
  75.  
  76.           foreach (FileInfo fileinfo in afileinfo)
  77.           {
  78.                grfx.DrawString(fileinfo.Name, Font, brush, 0, y);
  79.                y += Font.Height;
  80.           }
  81.      }
  82.      void MenuOnRefresh(object obj, EventArgs ea)
  83.      {
  84.           dirtree.RefreshTree();
  85.      }
  86. }
  87.